#include <stdio.h>
int lifang(int x, int y)
{
    int c = 1;
    while (x)
    {
        c *= y;
        x--;
    }
    return c;
}
int main()
{
    //求出0～100000之间的所有“水仙花数”并输出。

    //“水仙花数”是指一个n位数，其各位数字的n次方之和确好等于该数本身，如:153＝1^3＋5^3＋3^3，则153是一个“水仙花数”。
    for (int a = 0; a < 100000; a++)
    {
        //判断是几位数
        while (a)
        {
            int n = 0;
            if (a / 10)
            {
                n++;
            }
            a /= 10;
            //拆成单一字符
        int z = 0;
        int sum = 0;
        
            int k = a % 10;
            z = lifang (n, k);
            sum += z;
            if (sum == a){
                printf("%d ", a);
            }
        }
        
            
        
            
        
       
    }
    return 0;
}